软件安全在需求获取时有哪些常用方式
软件安全在需求获取时有以下常用方式:
头脑风暴:头脑风暴(Brain-storming)又称智力激励法、自由思考法,是指无限制的自由联想和讨论,其目的在于产生新观念或激发创新设想。头脑风暴在需要初步确定安全需求的情况下是可以接受的,但必须有更多系统化、结构化的方法来全面地决定安全需求。
问卷调查和访谈:调查可以直接用于生成安全需求。通常通过发送E-mail或在线问卷的方式请被调查者回答一些问题,也可以采用访谈的方式来进行。问卷调查和访谈的有效性取决于如何向被调查对象提出合适的问题。调查的问题应当覆盖软件安全设计原则和安全配置文件的内容,应当考虑业务风险、过程(或项目)风险和技术(或产品)风险。
策略分解:策略分解是指将组织需要遵守的内部和外部政策,包括外部法律法规、隐私和遵从性命令分解成详细的安全需求。策略分解过程是一个连续的、结构化的过程。表面上看,策略文件的分解过程可能是很简单、很直接的,但因为策略处于组织管理的高层次,可以开放解释,因此在分解过程中往往会出现很多歧义。因此,需要关注策略定义范围并谨慎实施分解过程,以确保分解过程是客观的、符合安全策略的,而不是某个人主观上的意见。
数据分类:数据分类是指,根据数据生命周期管理(Data Lifecycle Management,DLM)对数据的分阶段划分来决定相应的安全需求;也可以根据数据的重要性对保护级别的划分来决定相应的安全需求。
主/客体关系矩阵:采用主/客体关系矩阵来刻画一个基于使用用例的主/客体之间的操作关系。主/客体关系矩阵是角色和组件的二维表示,主体(角色)作为列,客体(对象/组件)作为行。当主/客体关系矩阵产生后,与主/客体关系矩阵所允许的对应动作相违背的事件就可以判定为威胁,在此基础之上可以确定安全需求。
使用用例和滥用案例建模:一个使用用例模型可以描述软件或系统的预期行为,而预期行为描述了完成业务功能所需要的行为和事件的顺序。通过清楚地描述什么时间和在什么条件下会发生某些行为,可以有效地确定业务需求,包括安全需求。
软件安全需求跟踪矩阵:通过数据分类、使用用例和滥用案例建模、主/客体关系矩阵,以及其他需求获取过程,可以将软件安全需求编制成一个需求列表或需求跟踪矩阵。一个通用的RTM是一个信息列表,可以采用管理决策理论的Zachman框架来描述。